Java 写入文件时添加BOM头 | 您所在的位置:网站首页 › utf16le编码 阅读器 › Java 写入文件时添加BOM头 |
BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。百度百科 项目中用到csv文件,使用Java读写csv文件时都设置了编码为utf8,然而用excel打开这些csv文件时中文都是乱码(使用wps可以正常显示)。 原来,excel是通过读取文件的BOM头来判断文件的编码的,如果不存在BOM头,则使用系统的默认编码。 为了解决乱码问题,只需要在文件头部添加BOM头信息,并在读写文件时指定对应编码即可: try { FileInputStream fis = new FileInputStream("input.csv"); InputStreamReader isr = new InputStreamReader(fis, "UTF-8"); BufferedReader br = new BufferedReader(isr); FileOutputStream fos = new FileOutputStream("output.csv"); fos.write(new byte[]{(byte)0xEF, (byte)0xBB, (byte)0xBF}); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); String line = null |
CopyRight 2018-2019 实验室设备网 版权所有 |